Determination of a computer system's performance characteristics including its attributes, capabilities, and features can be a complicated task. Because software, including but not limited to, applications, middleware, operating systems, drivers, and software components vary in their sensitivity to various attributes, capabilities, and features of the underlying computer system, knowing such information can be useful in selecting software. For example, some software may scale better on systems with more computational power—often called CPU or processor performance. Other software may be more dependant on the performance of the graphics and video sub-system or the storage sub-system, for example. Thus, knowing the system's attributes, capabilities, and features is invaluable when selecting new software.
Consumers often purchase computer systems based on the computer system's ability to run a particular piece of software or class of software. Thus, the need to understand computer system performance as it relates to how well a system will run software is an important task. There are many characteristics of a computer system that can affect the performance and operation of software. Characterizing these performance characteristics is typically the function of applications called “benchmarks” which are intended to measure performance of a computer system.
While benchmarks are useful, they often are (1) hard to use, (2) not integrated within an operating system product or platform, and (3) not readily available to those needing to evaluate computer performance. Since they are not built into or provided with an operating system platform, they cannot be used by software to make static or dynamic operational or configuration decisions based on the computer system's attributes, capabilities, and features.
In view of the foregoing, there is a need for systems and methods that overcome the limitations and drawbacks of the prior art.